home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Toolbox / Visual Basic Toolbox (P.I.E.)(1996).ISO / printing / pfovbe / pfonew.frm (.txt) < prev    next >
Encoding:
Visual Basic Form  |  1995-04-25  |  18.3 KB  |  569 lines

  1. VERSION 2.00
  2. Begin Form frmNew 
  3.    BackColor       =   &H00008000&
  4.    BorderStyle     =   1  'Fixed Single
  5.    ClientHeight    =   1305
  6.    ClientLeft      =   2700
  7.    ClientTop       =   1635
  8.    ClientWidth     =   3420
  9.    ControlBox      =   0   'False
  10.    Height          =   1770
  11.    Icon            =   0
  12.    Left            =   2610
  13.    MaxButton       =   0   'False
  14.    MinButton       =   0   'False
  15.    ScaleHeight     =   87
  16.    ScaleMode       =   3  'Pixel
  17.    ScaleWidth      =   228
  18.    Top             =   1260
  19.    Width           =   3600
  20.    Begin PictureBox picArray 
  21.       Height          =   100
  22.       Index           =   0
  23.       Left            =   100
  24.       ScaleHeight     =   75
  25.       ScaleWidth      =   75
  26.       TabIndex        =   3
  27.       Top             =   1400
  28.       Width           =   100
  29.    End
  30.    Begin PictureBox picArray 
  31.       Height          =   100
  32.       Index           =   1
  33.       Left            =   200
  34.       ScaleHeight     =   75
  35.       ScaleWidth      =   75
  36.       TabIndex        =   4
  37.       Top             =   1400
  38.       Width           =   100
  39.    End
  40.    Begin PictureBox picArray 
  41.       Height          =   100
  42.       Index           =   2
  43.       Left            =   300
  44.       ScaleHeight     =   75
  45.       ScaleWidth      =   75
  46.       TabIndex        =   5
  47.       Top             =   1400
  48.       Width           =   100
  49.    End
  50.    Begin PictureBox picArray 
  51.       Height          =   100
  52.       Index           =   3
  53.       Left            =   400
  54.       ScaleHeight     =   75
  55.       ScaleWidth      =   75
  56.       TabIndex        =   6
  57.       Top             =   1400
  58.       Width           =   100
  59.    End
  60.    Begin ListBox lstReport 
  61.       Height          =   1200
  62.       Left            =   45
  63.       TabIndex        =   2
  64.       Top             =   45
  65.       Width           =   2625
  66.    End
  67.    Begin CommandButton cmdCancel 
  68.       Cancel          =   -1  'True
  69.       Caption         =   "X"
  70.       Height          =   375
  71.       Left            =   2745
  72.       TabIndex        =   1
  73.       Top             =   495
  74.       Width           =   600
  75.    End
  76.    Begin CommandButton cmdOK 
  77.       Caption         =   "OK"
  78.       Default         =   -1  'True
  79.       Height          =   375
  80.       Left            =   2745
  81.       TabIndex        =   0
  82.       Top             =   45
  83.       Width           =   600
  84.    End
  85. Option Explicit
  86. Sub cmdCancel_Click ()
  87.     ShowStatus ("Cancel'd")
  88.     frmBar.Enabled = True
  89.     frmPreview.Show
  90.     Unload frmNew
  91. End Sub
  92. Sub cmdOK_Click ()
  93.     Dim iIndex As Integer
  94.     iIndex = lstReport.ListIndex
  95.     Select Case iIndex
  96.         Case 0
  97.             ShowStatus ("Create Report 1")
  98.             Report0
  99.             ShowStatus ("Report 1 created")
  100.             frmBar.Enabled = True
  101.             frmPreview.Show
  102.             frmBar.Show
  103.             Unload frmNew
  104.         Case 1
  105.             Beep
  106.         Case 2
  107.             Beep
  108.         Case Else
  109.             Debug.Print "Error: Wrong list index"
  110.     End Select
  111. End Sub
  112. Sub CreateFonts ()
  113.     'Fill the font array
  114.     Dim uiErr As Integer
  115.     Dim logfont As logfont
  116.     Dim hFont As Integer
  117.     Dim uiCount As Integer
  118.     uiErr = PfoFontArrayCreate(PFO.FontArray)
  119.     If Not uiErr Then
  120.         logfont.lfHeight = 60                'mm/10
  121.         logfont.lfWidth = 0
  122.         logfont.lfEscapement = 0
  123.         logfont.lfOrientation = 0
  124.         logfont.lfWeight = FW_NORMAL
  125.         logfont.lfItalic = Chr(0)
  126.         logfont.lfUnderline = Chr(0)
  127.         logfont.lfStrikeOut = Chr(0)
  128.         logfont.lfCharSet = Chr(ANSI_CHARSET)
  129.         logfont.lfOutPrecision = Chr(OUT_CHARACTER_PRECIS)
  130.         logfont.lfClipPrecision = Chr(CLIP_CHARACTER_PRECIS)
  131.         logfont.lfQuality = Chr(PROOF_QUALITY)
  132.         logfont.lfPitchAndFamily = Chr(VARIABLE_PITCH)
  133.         logfont.lfFaceName = "Arial"
  134.         
  135.         'Font 1: normal
  136.         hFont = CreateFontIndirect(logfont)
  137.         If hFont = 0 Then Exit Sub
  138.         uiErr = PfoFontArrayAdd(PFO.FontArray, hFont)
  139.         If uiErr Then Exit Sub
  140.         
  141.         'Font 2: bold, for sub-headings
  142.         logfont.lfWeight = FW_BOLD
  143.         hFont = CreateFontIndirect(logfont)
  144.         If hFont = 0 Then Exit Sub
  145.         uiErr = PfoFontArrayAdd(PFO.FontArray, hFont)
  146.         If uiErr Then Exit Sub
  147.         'Font 3: larger, bold, for top heading
  148.         logfont.lfHeight = 80
  149.         hFont = CreateFontIndirect(logfont)
  150.         If hFont = 0 Then Exit Sub
  151.         uiErr = PfoFontArrayAdd(PFO.FontArray, hFont)
  152.         If uiErr Then Exit Sub
  153.         'Some debugging helper functions
  154.         uiErr = PfoFontArrayGetCount(PFO.FontArray, uiCount)
  155.         Debug.Print "uiCount "; uiCount
  156.         uiErr = PfoFontArrayGetAt(PFO.FontArray, 0, hFont)
  157.         Debug.Print "hFont "; hFont
  158.     End If
  159. End Sub
  160. Sub Form_Load ()
  161.     ShowStatus ("Choose a report")
  162.     lstReport.Clear
  163.     lstReport.AddItem "Report 1", 0
  164.     lstReport.AddItem "Report 2", 1
  165.     lstReport.AddItem "Report 3", 2
  166.     If PFO.uiType < 3 Then
  167.         lstReport.Selected(PFO.uiType) = True
  168.     Else
  169.         lstReport.Selected(0) = True
  170.     End If
  171. End Sub
  172. Sub lstReport_DblClick ()
  173.     Call cmdOK_Click
  174. End Sub
  175. Sub Report0 ()
  176.     Dim uiErr As Integer
  177.     Dim item As PFOITEM
  178.     Dim uiCount As Integer
  179.     Dim iOuterLoop, iIndex, iRows As Integer
  180.     Const cszShortText = "This is a short test text."
  181.     Const cszLongText = "123_a_789 123_b_789 123_c_789 123_d_789 123_e_789 123_f_789 123_g_789 123_h_789 123_i_789 123_j_789 123_k_789 123_l_789 123_m_789 123_n_789 123_o_789 123_p_789 123_q_789 123_r_789 123_s_789 123_t_789 123_u_789 123_v_789 123_w_789 123_x_789 "
  182.     Call ClearPFO
  183.     'Page Layout
  184.     PFO.uiType = 0
  185.     PFO.rcPage.Left = 80
  186.     PFO.rcPage.Top = 80
  187.     PFO.rcPage.right = 1980
  188.     PFO.rcPage.bottom = 2380
  189.     PFO.uiHeaderDY = 100
  190.     PFO.uiFooterDY = 120
  191.     PFO.uiPageToPrint = 1
  192.     Call CreateFonts
  193.     'Header Array
  194.     uiErr = PfoItemArrayCreate(PFO.ItemArrayHeader)
  195.     If uiErr Then Exit Sub
  196.     item.uiVersion = &H100&
  197.     item.uiYOffs = 0
  198.     item.uiXOffs = 0
  199.     item.uiWidth = 2000
  200.     item.uiHeight = 0
  201.     item.uiType = PFO_FIXSTR
  202.     item.acFixStr = "(#p) Header"
  203.     item.uiFontIdx = 0
  204.     item.uiAlignment = PFO_LEFT
  205.     item.bKeepYPos = True
  206.     item.bBorderLeft = False
  207.     item.bBorderRight = False
  208.     item.bBorderTop = False
  209.     item.bBorderBottom = False
  210.     item.bNewPage = False
  211.     uiErr = PfoItemArrayAdd(PFO.ItemArrayHeader, item)
  212.     If uiErr Then Exit Sub
  213.     item.uiYOffs = 0
  214.     item.uiXOffs = 0
  215.     item.uiWidth = PFO.rcPage.right - PFO.rcPage.Left
  216.     item.uiHeight = 0
  217.     item.uiType = PFO_FIXSTR
  218.     item.acFixStr = "Headertext"
  219.     item.uiFontIdx = 0
  220.     item.uiAlignment = PFO_RIGHT
  221.     item.bKeepYPos = False
  222.     item.bBorderLeft = False
  223.     item.bBorderRight = False
  224.     item.bBorderTop = False
  225.     item.bBorderBottom = False
  226.     item.bNewPage = False
  227.     uiErr = PfoItemArrayAdd(PFO.ItemArrayHeader, item)
  228.     If uiErr Then Exit Sub
  229.     'Footer Array
  230.     uiErr = PfoItemArrayCreate(PFO.ItemArrayFooter)
  231.     If uiErr Then Exit Sub
  232.     item.uiYOffs = 0
  233.     item.uiXOffs = 0
  234.     item.uiWidth = 2000
  235.     item.uiHeight = 0
  236.     item.uiType = PFO_FIXSTR
  237.     item.acFixStr = "(#p) Footer"
  238.     item.uiFontIdx = 0
  239.     item.uiAlignment = PFO_LEFT
  240.     item.bKeepYPos = True
  241.     item.bBorderLeft = False
  242.     item.bBorderRight = False
  243.     item.bBorderTop = False
  244.     item.bBorderBottom = False
  245.     item.bNewPage = False
  246.     uiErr = PfoItemArrayAdd(PFO.ItemArrayFooter, item)
  247.     If uiErr Then Exit Sub
  248.     item.uiYOffs = 0
  249.     item.uiXOffs = 0
  250.     item.uiWidth = PFO.rcPage.right - PFO.rcPage.Left
  251.     item.uiHeight = 0
  252.     item.uiType = PFO_FIXSTR
  253.     item.acFixStr = "Footer text"
  254.     item.uiFontIdx = 0
  255.     item.uiAlignment = PFO_RIGHT
  256.     item.bKeepYPos = False
  257.     item.bBorderLeft = False
  258.     item.bBorderRight = False
  259.     item.bBorderTop = False
  260.     item.bBorderBottom = False
  261.     item.bNewPage = False
  262.     uiErr = PfoItemArrayAdd(PFO.ItemArrayFooter, item)
  263.     If uiErr Then Exit Sub
  264.     item.uiYOffs = 0
  265.     item.uiXOffs = 0
  266.     item.uiWidth = PFO.rcPage.right - PFO.rcPage.Left
  267.     item.uiHeight = 0
  268.     item.uiType = PFO_FIXSTR
  269.     item.acFixStr = "Footer #p"
  270.     item.uiFontIdx = 0
  271.     item.uiAlignment = PFO_RIGHT
  272.     item.bKeepYPos = False
  273.     item.bBorderLeft = False
  274.     item.bBorderRight = False
  275.     item.bBorderTop = False
  276.     item.bBorderBottom = False
  277.     item.bNewPage = False
  278.     uiErr = PfoItemArrayAdd(PFO.ItemArrayFooter, item)
  279.     If uiErr Then Exit Sub
  280.     'Body Array
  281.     uiErr = PfoItemArrayCreate(PFO.ItemArrayBody)
  282.     If uiErr Then Exit Sub
  283.     item.uiYOffs = 0
  284.     item.uiXOffs = 0
  285.     item.uiWidth = 2000
  286.     item.uiHeight = 0
  287.     item.uiType = PFO_FIXSTR
  288.     item.acFixStr = "Body"
  289.     item.uiFontIdx = 0
  290.     item.uiAlignment = PFO_LEFT
  291.     item.bKeepYPos = True
  292.     item.bBorderLeft = False
  293.     item.bBorderRight = False
  294.     item.bBorderTop = False
  295.     item.bBorderBottom = False
  296.     item.bNewPage = False
  297.     uiErr = PfoItemArrayAdd(PFO.ItemArrayBody, item)
  298.     If uiErr Then Exit Sub
  299.     item.uiYOffs = 0
  300.     item.uiXOffs = 0
  301.     item.uiWidth = PFO.rcPage.right - PFO.rcPage.Left
  302.     item.uiHeight = 0
  303.     item.uiType = PFO_FIXSTR
  304.     item.acFixStr = "Body text"
  305.     item.uiFontIdx = 0
  306.     item.uiAlignment = PFO_RIGHT
  307.     item.bKeepYPos = False
  308.     item.bBorderLeft = False
  309.     item.bBorderRight = False
  310.     item.bBorderTop = False
  311.     item.bBorderBottom = False
  312.     item.bNewPage = False
  313.     uiErr = PfoItemArrayAdd(PFO.ItemArrayBody, item)
  314.     If uiErr Then Exit Sub
  315.     'A sequence of mixed tables and texts
  316.     For iOuterLoop = 0 To 4
  317.         item.uiYOffs = iOuterLoop * 333
  318.         item.uiXOffs = 0
  319.         item.uiWidth = 2000
  320.         item.uiHeight = 0
  321.         item.uiType = PFO_FIXSTR
  322.         item.acFixStr = "Caption"
  323.         item.uiFontIdx = 2
  324.         item.uiAlignment = PFO_LEFT
  325.         item.bKeepYPos = False
  326.         item.bBorderLeft = False
  327.         item.bBorderRight = False
  328.         item.bBorderTop = False
  329.         item.bBorderBottom = False
  330.         item.bNewPage = False
  331.         uiErr = PfoItemArrayAdd(PFO.ItemArrayBody, item)
  332.         If uiErr Then Exit Sub
  333.         item.uiYOffs = 100
  334.         item.uiXOffs = 0
  335.         item.uiWidth = 2000
  336.         item.uiHeight = 0
  337.         item.uiType = PFO_FIXSTR
  338.         item.acFixStr = "HorzTitl 1"
  339.         item.uiFontIdx = 1
  340.         item.uiAlignment = PFO_LEFT
  341.         item.bKeepYPos = True
  342.         item.bBorderLeft = False
  343.         item.bBorderRight = False
  344.         item.bBorderTop = False
  345.         item.bBorderBottom = True
  346.         item.bNewPage = False
  347.         uiErr = PfoItemArrayAdd(PFO.ItemArrayBody, item)
  348.         If uiErr Then Exit Sub
  349.         item.uiYOffs = 0
  350.         item.uiXOffs = 600
  351.         item.uiWidth = 2000
  352.         item.uiHeight = 0
  353.         item.uiType = PFO_FIXSTR
  354.         item.acFixStr = "HorzTitl 2"
  355.         item.uiFontIdx = 1
  356.         item.uiAlignment = PFO_LEFT
  357.         item.bKeepYPos = True
  358.         item.bBorderLeft = False
  359.         item.bBorderRight = False
  360.         item.bBorderTop = False
  361.         item.bBorderBottom = True
  362.         item.bNewPage = False
  363.         uiErr = PfoItemArrayAdd(PFO.ItemArrayBody, item)
  364.         If uiErr Then Exit Sub
  365.         item.uiYOffs = 0
  366.         item.uiXOffs = 1200
  367.         item.uiWidth = 2000
  368.         item.uiHeight = 0
  369.         item.uiType = PFO_FIXSTR
  370.         item.acFixStr = "HorzTitl 3"
  371.         item.uiFontIdx = 1
  372.         item.uiAlignment = PFO_LEFT
  373.         item.bKeepYPos = False
  374.         item.bBorderLeft = False
  375.         item.bBorderRight = False
  376.         item.bBorderTop = False
  377.         item.bBorderBottom = True
  378.         item.bNewPage = False
  379.         uiErr = PfoItemArrayAdd(PFO.ItemArrayBody, item)
  380.         If uiErr Then Exit Sub
  381.         item.uiYOffs = 10
  382.         item.uiXOffs = 0
  383.         item.uiWidth = 2000
  384.         item.uiHeight = 0
  385.         item.uiType = PFO_FIXSTR
  386.         item.acFixStr = "HorzItem 1"
  387.         item.uiFontIdx = 0
  388.         item.uiAlignment = PFO_LEFT
  389.         item.bKeepYPos = True
  390.         item.bBorderLeft = False
  391.         item.bBorderRight = False
  392.         item.bBorderTop = False
  393.         item.bBorderBottom = False
  394.         item.bNewPage = False
  395.         uiErr = PfoItemArrayAdd(PFO.ItemArrayBody, item)
  396.         If uiErr Then Exit Sub
  397.         item.uiYOffs = 0
  398.         item.uiXOffs = 600
  399.         item.uiWidth = 2000
  400.         item.uiHeight = 0
  401.         item.uiType = PFO_FIXSTR
  402.         item.acFixStr = "HorzItem 2"
  403.         item.uiFontIdx = 0
  404.         item.uiAlignment = PFO_LEFT
  405.         item.bKeepYPos = True
  406.         item.bBorderLeft = False
  407.         item.bBorderRight = False
  408.         item.bBorderTop = False
  409.         item.bBorderBottom = False
  410.         item.bNewPage = False
  411.         uiErr = PfoItemArrayAdd(PFO.ItemArrayBody, item)
  412.         If uiErr Then Exit Sub
  413.         item.uiYOffs = 0
  414.         item.uiXOffs = 1200
  415.         item.uiWidth = 2000
  416.         item.uiHeight = 0
  417.         item.uiType = PFO_FIXSTR
  418.         item.acFixStr = "HorzItem 3"
  419.         item.uiFontIdx = 0
  420.         item.uiAlignment = PFO_LEFT
  421.         item.bKeepYPos = False
  422.         item.bBorderLeft = False
  423.         item.bBorderRight = False
  424.         item.bBorderTop = False
  425.         item.bBorderBottom = False
  426.         item.bNewPage = False
  427.         uiErr = PfoItemArrayAdd(PFO.ItemArrayBody, item)
  428.         If uiErr Then Exit Sub
  429.         For iIndex = 1 To 12
  430.             item.uiYOffs = 100
  431.             item.uiXOffs = 0
  432.             item.uiWidth = 500
  433.             item.uiHeight = 0
  434.             item.uiType = PFO_FIXSTR
  435.             item.acFixStr = "Label"
  436.             item.uiFontIdx = 1
  437.             item.uiAlignment = PFO_RIGHT
  438.             item.bKeepYPos = True
  439.             item.bBorderLeft = False
  440.             item.bBorderRight = False
  441.             item.bBorderTop = False
  442.             item.bBorderBottom = False
  443.             item.bNewPage = False
  444.             uiErr = PfoItemArrayAdd(PFO.ItemArrayBody, item)
  445.             If uiErr Then Exit Sub
  446.             item.uiYOffs = 0
  447.             item.uiXOffs = 550
  448.             item.uiWidth = 2000 - 550
  449.             item.uiHeight = 0
  450.             item.uiType = PFO_FIXSTR
  451.             item.acFixStr = cszShortText
  452.             item.uiFontIdx = 0
  453.             item.uiAlignment = 0
  454.             item.bKeepYPos = PFO_LEFT
  455.             item.bBorderLeft = False
  456.             item.bBorderRight = False
  457.             item.bBorderTop = False
  458.             item.bBorderBottom = False
  459.             item.bNewPage = False
  460.             If iIndex Mod 6 = 0 Then
  461.                 item.acFixStr = cszLongText
  462.             End If
  463.             uiErr = PfoItemArrayAdd(PFO.ItemArrayBody, item)
  464.             If uiErr Then Exit Sub
  465.         Next iIndex
  466.         item.uiYOffs = 0
  467.         item.uiXOffs = 0
  468.         item.uiWidth = 500
  469.         item.uiHeight = 0
  470.         item.uiType = PFO_FIXSTR
  471.         item.acFixStr = "ColHead 1"
  472.         item.uiFontIdx = 1
  473.         item.uiAlignment = PFO_LEFT
  474.         item.bKeepYPos = True
  475.         item.bBorderLeft = True
  476.         item.bBorderRight = True
  477.         item.bBorderTop = True
  478.         item.bBorderBottom = True
  479.         item.bNewPage = True
  480.         uiErr = PfoItemArrayAdd(PFO.ItemArrayBody, item)
  481.         If uiErr Then Exit Sub
  482.         item.uiYOffs = 0
  483.         item.uiXOffs = 500
  484.         item.uiWidth = 500
  485.         item.uiHeight = 0
  486.         item.uiType = PFO_FIXSTR
  487.         item.acFixStr = "ColHead 2"
  488.         item.uiFontIdx = 1
  489.         item.uiAlignment = PFO_CENTER
  490.         item.bKeepYPos = True
  491.         item.bBorderLeft = True
  492.         item.bBorderRight = True
  493.         item.bBorderTop = True
  494.         item.bBorderBottom = True
  495.         item.bNewPage = False
  496.         uiErr = PfoItemArrayAdd(PFO.ItemArrayBody, item)
  497.         If uiErr Then Exit Sub
  498.         item.uiYOffs = 0
  499.         item.uiXOffs = 1000
  500.         item.uiWidth = 500
  501.         item.uiHeight = 0
  502.         item.uiType = PFO_FIXSTR
  503.         item.acFixStr = "ColHead 3"
  504.         item.uiFontIdx = 1
  505.         item.uiAlignment = PFO_RIGHT
  506.         item.bKeepYPos = False
  507.         item.bBorderLeft = True
  508.         item.bBorderRight = True
  509.         item.bBorderTop = True
  510.         item.bBorderBottom = True
  511.         item.bNewPage = False
  512.         uiErr = PfoItemArrayAdd(PFO.ItemArrayBody, item)
  513.         If uiErr Then Exit Sub
  514.         For iRows = 1 To 2 * iOuterLoop
  515.             item.uiYOffs = 0
  516.             item.uiXOffs = 0
  517.             item.uiWidth = 500
  518.             item.uiHeight = 0
  519.             item.uiType = PFO_FIXSTR
  520.             item.acFixStr = "ColRow 1"
  521.             item.uiFontIdx = 0
  522.             item.uiAlignment = PFO_LEFT
  523.             item.bKeepYPos = True
  524.             item.bBorderLeft = True
  525.             item.bBorderRight = True
  526.             item.bBorderTop = True
  527.             item.bBorderBottom = True
  528.             item.bNewPage = False
  529.             uiErr = PfoItemArrayAdd(PFO.ItemArrayBody, item)
  530.             If uiErr Then Exit Sub
  531.             item.uiYOffs = 0
  532.             item.uiXOffs = 500
  533.             item.uiWidth = 500
  534.             item.uiHeight = 0
  535.             item.uiType = PFO_FIXSTR
  536.             item.acFixStr = "ColRow 2"
  537.             item.uiFontIdx = 0
  538.             item.uiAlignment = PFO_CENTER
  539.             item.bKeepYPos = True
  540.             item.bBorderLeft = True
  541.             item.bBorderRight = True
  542.             item.bBorderTop = True
  543.             item.bBorderBottom = True
  544.             item.bNewPage = False
  545.             uiErr = PfoItemArrayAdd(PFO.ItemArrayBody, item)
  546.             If uiErr Then Exit Sub
  547.             item.uiYOffs = 0
  548.             item.uiXOffs = 1000
  549.             item.uiWidth = 500
  550.             item.uiHeight = 0
  551.             item.uiType = PFO_FIXSTR
  552.             item.acFixStr = "ColRow 3"
  553.             item.uiFontIdx = 0
  554.             item.uiAlignment = PFO_RIGHT
  555.             item.bKeepYPos = False
  556.             item.bBorderLeft = True
  557.             item.bBorderRight = True
  558.             item.bBorderTop = True
  559.             item.bBorderBottom = True
  560.             item.bNewPage = False
  561.             uiErr = PfoItemArrayAdd(PFO.ItemArrayBody, item)
  562.             If uiErr Then Exit Sub
  563.         Next iRows
  564. Skip:
  565.     Next iOuterLoop
  566.     uiErr = PfoInit(PFO)
  567.     If uiErr Then Exit Sub
  568. End Sub
  569.